Memory is widely used to store information (both data and program) in a digital system. During the operation of the system, information (bits) stored in the memory may be corrupted due to various reasons. One possible cause of the corruption is due to environmental events both internal to the memory and outside of the memory. One such outside event is a particle strike. There are other reasons which cause the corruption (failure) of bits besides environmental events. When a bit is corrupted, information stored is lost resulting system failure or data lost. Therefore it is important to protect the integrity of the memory content.
Various means for protecting the memory content from corruption have been used. Error correction codes (ECC) have the advantage of being able to detect errors in a codeword (both the data field and the check bits), and also to correct errors. However, a fault that occurs inside an ECC encoder/decoder and correction circuit may lead to erroneous detection results of the ECC decoder. In other words, the fault in the ECC encoder/decoder and correction circuit itself is generally unprotected by error correcting codes.